System and method for asynchronous wireless collision detection with acknowledgment for ad hoc wireless networks

ABSTRACT

The present disclosure relates generally to a system and method for asynchronous busy-tone multiple access with acknowledgement for ad hoc wireless networks. In one example, the method includes emitting a tone after determining that a transmission is incoming from a sending node. An initial portion of a packet comprising the transmission is received while emitting the tone, where the initial portion contains a destination address of the packet. The emitting of the tone is stopped if the received destination address does not match an address of the receiving node. A remaining portion of the packet is received while continuing to emit the tone if the received destination address matches the address of the receiving node.

CROSS-REFERENCE

The present application is a continuation of prior U.S. patent application Ser. No. 11/283,146, filed on Nov. 18, 2005 now U.S. Pat. No. 7,567,526 which claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application No. 60/647,897 filed on Jan. 28, 2005.

This application is related to U.S. patent application Ser. No. 11/282,183, filed on Nov. 18, 2005, and entitled “SYSTEM AND METHOD FOR ASYNCHRONOUS BUSY-TONE MULTIPLE ACCESS WITH ACKNOWLEDGEMENT FOR AD HOC WIRELESS NETWORKS”, which claims priority from U.S. Provisional Application Ser. No. 60/643,721, filed on Jan. 13, 2005.

BACKGROUND

An ad hoc wireless network is a collection of devices (e.g., nodes) capable of wirelessly communicating and networking. Generally, ad hoc wireless networks operate in a distributed, not-fully-connected, asynchronous, and mobile manner. Examples of ad hoc networks include wireless sensor networks, packet radio networks, and wireless mesh networks. An ideal ad hoc network provides multi-hop transmission, high mobility, self-organization, seamless handover, quality of service (QoS), and high spectrum efficiency.

In general, nodes in an ad hoc network are distributed and an ad hoc network has no central controllers, such as access points (AP) in a wide local area network (WLAN) environment or base stations (BS) as described with respect to IEEE 802.16. Therefore, nodes within an ad hoc network cannot rely on a central control architecture to synchronize communications and prevent collisions. Furthermore, an ad hoc network is not guaranteed for full connection (e.g., some nodes may not be able to hear each other), which results in hidden-node and exposed-node problems.

A hidden node is within the coverage of a receiving node, but is outside of the coverage of a sending node that is transmitting to the receiving node. If the hidden node is transmitting at the same time as the sending node is transmitting, the hidden node's transmission will cause interference with the receiving node and will prevent the receiving node from receiving a message from the sending node. An exposed node is a node that is within a sending node's coverage, but outside the receiving node's coverage. The exposed node will not be able to receive while the sending node is transmitting. However, the exposed node may transmit to another receiving node outside of the sending node's coverage without causing interference. For reasons such as these, the design of media access control (MAC) protocols for ad hoc networks is challenging.

SUMMARY

In one embodiment, a method for use by a receiving node in an ad hoc network is provided. The method includes emitting a tone after determining that a transmission is incoming from a sending node and receiving an initial portion of a packet comprising the transmission while emitting the tone, where the initial portion contains a destination address of the packet. The method also includes stopping the emitting of the tone if the received destination address does not match an address of the receiving node, and receiving a remaining portion of the packet while continuing to emit the tone if the received destination address matches the address of the receiving node.

In another embodiment, a method for use by a sending node in an ad hoc network is provided. The method includes attempting to detect a tone emitted by one of a plurality of receiving nodes. A timer of a first time period is set and an initial portion of a packet is sent to a receiving node if no tone is detected, where the initial portion contains a destination address of the receiving node. The method determines whether a tone is detected during the first time period, and sends a remaining portion of the packet to the receiving node if the tone is detected before the first period expires.

In still another embodiment, a method for use in an ad hoc network is provided. The method includes starting, by a first node, a first timer and initiating, by the first node, a transmission to a second node. The second node emits a tone in response to detecting the initiating of the transmission and determines whether the transmission is intended for the second node based on a first portion of a packet comprising the transmission received by the second node. The emission of the tone is continued if the packet is intended for the second node. The first node sends a second portion of the packet if the tone is still being emitted by the first node after the expiration of the first timer, and the second node stops the emitting of the tone after receiving the second portion of the packet.

In yet another embodiment, a receiving node for use within an ad hoc network is provided. The receiving node includes a wireless communication system, a processor coupled to the wireless communication system, and a memory containing a plurality of instructions for execution by the processor. The instructions include instructions for: receiving a plurality of bits from a sending node, where the plurality of bits comprise a portion of an address header for a data packet; turning on a tone after receiving the plurality of bits and before identifying the address header; comparing the address header with an address of the receiving node and continuing to emit the tone if the address header matches the address of the receiving node; and turning off the tone after receiving a remaining portion of the data packet.

In another embodiment, a sending node for use within an ad hoc network is provided. The sending node includes a wireless communication system, a processor coupled to the wireless communication system, and a memory containing a plurality of instructions for execution by the processor. The instructions include instructions for: setting a timer of a first time period and initiating a transmission of a data packet to a receiving node if a tone is not detected; determining if a tone is detected prior to the expiration of the timer; and continuing the transmission of the data packet if a tone is detected, where the entire transmission is substantially uninterrupted if a tone is detected.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the present disclosure are best understood from the following detailed description when read with the accompanying figures. It is emphasized that, in accordance with the standard practice in the industry, various features are not drawn to scale. In fact, the dimensions of the various features may be arbitrarily increased or reduced for clarity of discussion.

FIG. 1 a is a diagram of one embodiment of an ad hoc wireless network.

FIG. 1 b is a block diagram of one embodiment of a node within the ad hoc wireless network of FIG. 1 a.

FIG. 2 is a flowchart of one embodiment of a method by which a sending node within the network of FIG. 1 a can interact with a receiving node.

FIG. 3 is a flowchart of one embodiment of a method by which a receiving node within the network of FIG. 1 a can interact with a sending node.

FIG. 4 is a diagram of one embodiment of a timing sequence that describes the timing of events between a sending node and receiving node in the network of FIG. 1 a.

FIG. 5 is a diagram of another embodiment of a timing sequence that describes the timing of events between a sending node and receiving node in the network of FIG. 1 a.

FIG. 6 is a diagram of one embodiment of a state machine that may be used to implement the timing sequence of FIG. 5.

FIGS. 7 a-7 d illustrate four scenarios that may occur within the network of FIG. 1 a.

DETAILED DESCRIPTION

It is to be understood that the following disclosure provides many different embodiments, or examples, for implementing different features of the invention. Specific examples of components and arrangements are described below to simplify the present disclosure. These are, of course, merely examples and are not intended to be limiting. In addition, the present disclosure may repeat reference numerals and/or letters in the various examples. This repetition is for the purpose of simplicity and clarity and does not in itself dictate a relationship between the various embodiments and/or configurations discussed.

For purposes of convenience, the following notations will be used throughout the remainder of this disclosure.

Γ maximum one-way propagation delay

τ one-way propagation delay, 0<τ≦Γ

δ data transmission duration

δ_(AH) length of data transmission duration

Δ₁ address header (AH) acknowledgement duration

Δ₂ data acknowledgement duration

γ length of RTS packet (used in previous protocols)

Referring to FIG. 1 a, in one embodiment, an ad hoc wireless network 100 is configured with multiple nodes 102, 104, 106, 108, . . . , M. Each node 102-M has an associated coverage area 112, 114, 116, 118, . . . , N, respectively, within which each node may send information to other nodes within the network 100. It is understood that the coverage areas for a particular node 102-M may not be equal and that the shape of a coverage area may not correspond to a circle as shown. Furthermore, different nodes may have different coverage areas, and a coverage area for a single node may vary depending on the environment, available power, and other factors. The ad hoc network 100 may be any type of ad hoc network, including wireless sensor networks, packet radio networks, and wireless mesh networks.

With additional reference to FIG. 1 b, one embodiment of the node 102 of FIG. 1 a is illustrated. A processor 120 is coupled to a memory 122 and a wireless communications system 124. The memory 122 contains instructions for execution by the processor 120 for sending and receiving wireless communications via the wireless communications system 124. Although not shown, it is understood that the node 102 may include other components, such as a microphone, speaker, and keys for manual data entry and for controlling the node 102. Each node 102-M may be any type of wireless device capable of using the network 100 of FIG. 1 a. Examples of such devices include laptop computers, personal digital assistants (PDAs), and cellular phones.

Referring again specifically to FIG. 1 a, as an illustration of the previously described hidden-node problem, assume that the node 102 is a sending node and the node 104 is a receiving node. Because the node 106 is within the coverage area of the node 104 but the node 106 is not within the coverage area of the node 102, the node 106 is hidden from the node 102. Therefore, both the node 102 and the node 106 may try to transmit to the node 104. The two transmissions may create interference that will prevent the node 106 from successfully receiving either transmission, as illustrated in FIG. 7 b.

As an illustration of the previously described exposed-node problem, assume that the node 102 is a sending node and the node 104 is a receiving node. Because the node 108 is within the coverage area of the node 102, the node 108 is an exposed node that may not be allowed to transmit while the node 102 is transmitting, as illustrated in FIG. 7 a. However, because the node 104 is not within the coverage area 118 of the node 108, a transmission by the node 108 would not affect the reception of the node 104. Therefore, the node 108 should be allowed to transmit to other nodes (e.g., to the node M), despite its proximity to the node 102.

Some previous attempts for solving hidden/exposed-node problems have relied on an RTS-CTS (Clear To Send) mechanism. In one approach using this mechanism, before a sending node S₁ sends data to a receiving node R₁, S₁ first sends out an RTS packet to which R₁ should respond with a CTS packet. All nodes that hear the RTS defer long enough for S₁ to receive the CTS packet. All nodes that hear the CTS defer long enough for R₁ to finish receiving the data that follows. After a successful RTS-CTS handshake, S₁ can start sending data to R₁. However, in this mechanism, exposed nodes cannot complete the RTS-CTS handshake cycle and concurrent transmission is inhibited. While an exposed node is allowed to send an RTS, it cannot receive a CTS due to the interference from S₁'s transmission. Another approach suggests a possible solution by explicitly terminating the transmission attempt of exposed nodes by using RTS-CTS-DS (Data Sending) handshaking, together with other protocol enhancements. However, neither approach solves the hidden-node problem because of possible CTS collisions.

In a CTS collision, while R₁ is sending a CTS to S₁, a hidden node H may be sending out some packets. In this case, H does not hear R₁'s CTS, and the nodes within the coverage of both R₁ and H may not be able to detect the transmissions from R₁ and H. However, these nodes may not defer their transmissions and may destroy the receiving ability of R₁. One possible solution uses CTS's dominance over RTS to resolve this CTS collision problem. More specifically, a CTS packet is required to be long enough that the hidden node H will hear at least part of the CTS packet even after it sends out a whole RTS packet. H either receives the CTS and does not transmit, or detects the noise due to the remainder of the CTS packet and stops transmitting. However, a problem with this CTS-dominance approach is that a node cannot tell the difference between an RTS collision and a CTS collision. Whenever a collision is detected, the involved node backs off. This may result in long backoff periods that substantially limit the total network throughput.

One possible solution to the hidden node problem requires a receiver to power up a busy tone (BT) to warn hidden nodes of its receiving activity. For example, the busy tone can be an unmodulated sine wave out of the data channel, although the busy tone does not have to occupy significant spectrum compared with the spectrum of data channel. However, this busy tone multiple access (BTMA) solution was designed for centralized networks where a centralized controller, such as an access point, controls the busy tone. BTMA may be extended for packet radio networks by having all the nodes within the sender's coverage turn on a busy tone, which solves the hidden-node problem. However the cost of BTMA is high, as no concurrent transmissions are allowed within the double radius of the sender. Moreover, the exposed-node problem may be intensified.

A possible alteration of the BTMA approach, called receiver-initiated BTMA (RI-BTMA), is to have only the targeted receiver turn on the busy tone. Then, if S₁ does not sense a busy tone, S₁ will first transmit a preamble containing R₁'s address and will not begin transmitting data until it hears a busy tone. Having received the preamble and recognizing its own address in the preamble, R₁ then powers up the busy tone and is ready to receive data. However, the RI-BTMA approach does not eliminate hidden nodes.

To address hidden nodes, a wireless collision detection (WCD) approach may be implemented using two busy tones. Upon detecting transmission activity, all receivers power up a carrier detect (CD) tone and continue receiving the header part of the data packet. After receiving the data header, only the targeted receiver whose address matches the address in the header will switch from the CD tone to a feedback tone (FT). All other receivers eventually turn off their CD tone. The sender will abort the data transmission if the FT tone is not sensed after a certain number of time slots. The CD tone provides an immediate warning to hidden nodes of the ongoing data transmission, but at the cost of unnecessary warnings to other nodes within the double radius of the sender.

Both RI-BTMA and WCD are based on slotted operation mode. However, synchronization is generally difficult to achieve in wireless ad hoc networks. Another approach, called dual busy tone multiple access (DBTMA), is to use two physically separate tones, one for transmitting (BTt) to warn all nodes within the sender's coverage of the transmission, and the other for receiving (BTr) to warn all nodes within the receiver's coverage. In DBTMA, when S₁ is ready to transmit data to R₁, it determines whether either BTt or BTr are on. If neither tone is on, S₁ sends out an RTS packet and waits for R₁ to turn on BTr as an acknowledgement of correctly receiving the RTS. When S₁ hears BTr, it waits for 2Γ to allow BTr to reach all nodes within the coverage of R₁ and shut down any competing RTS packets (if any) sent by hidden nodes. S₁ then sends out the data packet. While DBTMA provides a data transmission that is free of collisions via the two busy tones, it may waste resources due to RTS collisions. More specifically, the time during which an RTS packet is being received is vulnerable because the targeted receiver will not turn on BTr until it successfully receives the entire RTS packet and the transmitting tone BTt has no affect on hidden nodes. Accordingly, system throughput is likely limited by RTS collisions due to competing transmissions from hidden nodes and BTt unnecessarily inhibits exposed nodes for up to the duration of the RTS packet.

Referring to FIG. 2, in one embodiment, a method 200 illustrates how a sending node (e.g., the node 102 of FIG. 1) can determine whether to send data to a receiving node (e.g., the node 104 of FIG. 1). As will be described later in greater detail, the node 102 performs certain actions based on whether the node 104 is emitting a tone. Although a busy tone is used for purposes of example throughout this disclosure, it is understood that other types of tones may be used to implement the present invention, and that the term “busy tone” is representative of other tones. The node 102 need not emit any tone and relies on the busy tone emitted by the node 104 to deal with the previously described exposed-node and hidden-node problems.

In step 202, the node 102 listens for a busy tone. If it detects a busy tone, as determined in step 204, it returns to step 202. This loop may repeat until the node 102 does not detect a busy tone or the request to send data is canceled. If no busy tone is detected, the node 102 turns on a timer having a predefined duration in step 206 and starts sending a data packet in step 208, beginning with the packet's header. The header contains the address of the receiving node.

It is understood that “predefined” may encompass both static and dynamically calculated time periods. For example, a static time period may be predefined because a particular time duration is set, while a dynamic time period may be predefined because it is calculated using a predefined process, relationship, or set of parameters. In the present example, the predefined duration is sufficient for the header to reach the receiving node 104 and for the busy tone to return to the node 102.

In step 210, the node 102 determines whether the node 104 has acknowledged receiving the header by determining whether the busy tone is still on when the timer expires. If the header is not acknowledged, the method returns to step 202. If the header is acknowledged, the method continues to step 212, where the node 102 continues sending the packet to the node 104. It is understood that there may be no pause between sending the header and sending the remaining portion of the packet. For example, the timer may not expire until the node 102 is already sending the remaining portion of the packet. Although not shown in FIG. 2, it is understood that the node 102 may also wait for an acknowledgement that the transmitted data has been received by the node 104.

Referring to FIG. 3, in another embodiment, a method 300 illustrates how a receiving node (e.g., the node 104 of FIG. 1) can receive data from a sending node (e.g., the node 102 of FIG. 1) while preventing interference from other nodes. As will be described later in greater detail, the node 104 accomplishes this by emitting a busy tone. The node 102 need not emit any tone and relies on the busy tone emitted by the node 104 to deal with the previously described exposed-node and hidden-node problems.

In step 302, the node 104 begins to receive the first part of a transmission (e.g., one or more incoming bits), and turns on a busy tone in step 304. In step 306, the node 104 receives a data packet header that contains a destination address of the data packet. In step 308, the node 104 determines whether the destination address in the header matches the address of the node 104. If there is not an address match, the method 300 turns off the busy tone in step 310 and returns to an idle state to await another incoming transmission. If there is an address match, the node 104 leaves the busy signal on and receives the complete data packet in step 312. After receiving the entire data packet, the node 104 may leave the busy tone on for a predefined period of time to acknowledge the receipt of the data packet to the sending node 102.

Referring to FIG. 4, in yet another embodiment, a timing diagram 400 illustrates the coordination of a sending node S₁ (e.g., the node 102 of FIG. 1) and a receiving node R₁ (e.g., the node 104 of FIG. 1) using an asynchronous wireless collision detection with acknowledgement (AWCD/ACK) process. For example, the diagram 400 may be used to coordinate the methods 200 and 300 of FIGS. 2 and 3, respectively. The diagram 400 includes two states in which the node 102 may operate (ACK-AH and S-DATA) and two states in which the node 104 may operate (WCD and R-DATA), each of which will be described in greater detail with respect to FIG. 6.

In the present example, the node 102 is attempting to send data to the node 104, which is r seconds away (0<τ≦Γ). For purposes of clarity, the data processing time, transmit/receive turnaround time, and busy tone detection time are ignored in the diagram 400.

At time t₀, the node 102 prepares to begin transmitting. However, before doing so, it determines whether a node is sending out a busy tone. If the node 102 does not detect a busy tone, it starts a timer having a duration of Δ₁ seconds and begins transmitting the data packet beginning with the node 104's address.

At time t₁=t₀+τ, the first bit of the data packet reaches the node 104, which turns on the busy tone.

At time t₂=t₀+2τ, the node 102 detects the busy tone emitted by the node 104.

At time t₃=t₀+δ_(AH), the node 102 finishes transmitting the portion of the data packet containing the address header (AH). After transmitting the header, the node 102 continues sending the remainder of the data packet.

At time t₄=t₃+τ=t₀+δ_(AH)+τ, the node 104 receives the address header recognizes the address as that of the node 104. After matching the addresses, the node 104 continues to emit the busy tone and continues receiving the rest of the data packet. If the addresses do not match, the node 104 will turn off the busy tone and wait for the next incoming transmission.

At time t₅=t₀+δ, the node 102 finishes transmitting the entire data packet and ends a data transmission cycle.

At time t₆=t₅+τ=t₀+δ+τ, the node 104 receives the entire data packet successfully and ends a data reception cycle.

Referring to FIG. 5, a timing diagram 500 illustrates another embodiment of an operation using the AWCD/ACK protocol. The present example differs from the embodiment of FIG. 4 in that the receiving node 104 uses the busy tone to acknowledge receipt of the data. Because times t₀ through t₄ are similar to those described above with respect to FIG. 4, the present example begins at time t₅ after the node 102 has finished sending the packet.

At time t₅=t₀+δ, instead of finishing its data transmission cycle, after transmitting the entire data packet, the node 102 starts a timer having a duration of Δ₂ seconds. The node 102 may also send dummy data while the timer is running.

At time t₆=t₅+τ=t₀+δ+τ, the node 104 receives the entire data packet successfully and, instead of ending its data reception cycle, starts a timer having a duration of Δ₂ seconds.

At time t₇=t₅+Δ₂=t₀+δ+Δ₂, the node 102 detects that the busy tone is still being emitted, which implies data transmission success, and finishes its data transmit cycle.

At time t₈=t₆+Δ₂=t₀+δ+τ+Δ₂, the node 104 turns off the busy tone and finishes its data receiving cycle. Accordingly, the busy tone can be used to acknowledge the receipt of the data, as well as the receipt of the header.

Referring to FIG. 6, one embodiment of a finite state machine 600 is illustrated with states corresponding to the timing diagram 500 of FIG. 5. The state machine 600 of the present example includes eight states, with an IDLE state 602 at the center. A CONTEND state 604 is an intermediate state for a sending node between the IDLE state 602 and an ACK-AH state 606. The states 604, 606, 610, and 616 are sender-involved and the states 608, 612, and 614 are receiver-involved. The following description of the state machine 600 moves through the states in the order in which they may occur in a successful transmission/reception scenario.

The IDLE state 602 is entered after a node (e.g., the node 102 or node 104 of FIG. 1) is powered up. The node remains in the IDLE state 602 if it does not become involved in sending or receiving activities. The IDLE state 602 is the state to which most of the other states return if certain events happen, as will be described below in detail with respect to each state. In the present example, if a node in the IDLE state 602 has a data packet ready to send, the node is in data sending mode. Otherwise, the node is in receiving mode.

The CONTEND state 604 is an intermediary state. When a sending node (e.g., the node 102) has a data packet ready for transmission to a receiving node (e.g., the node 104), the node 102 first determines whether there is a busy tone being emitted. As previously described, if a busy tone is sensed, the node 102 will refrain from sending so as not to interrupt an existing transmission. Instead, the node 102 starts a timer according to a predefined backoff process and enters the CONTEND state 604. When the timer expires, the node 102 again determines if a busy tone is being emitted. If it detects a busy tone again, the node 102 returns to the IDLE state 602 and starts the process again from there. If no busy tone is detected, the node 102 proceeds to the ACK-AH state 606.

The ACK-AH state 606 may be entered in two ways. In addition to entering the ACK-AH state 606 via the CONTEND state 604, as previously described, the sending node 102 may enter the ACK-AH state 606 directly from the IDLE state 602 if a busy tone is not sensed when the node 102 has data ready to send. In the ACK-AH state 606, the node 102 sets up a timer of duration Δ₁>2Γ and starts sending data beginning with the address header of the data packet. If the busy tone is still on when the timer expires, the node 102 enters the S-DATA state 610.

Upon detecting a new data transmission, a node in the receiving mode of the IDLE state (e.g., the node 104) turns on its busy tone and enters the wireless collision detection (WCD) state 608, where it begins to receive and decode the incoming address header. Having received the address header (which takes δ_(AH) seconds) and matched the header's address with its own address, the node 104 enters the R-DATA state 612. If the addresses do not match, the node 104 turns off its busy tone and returns to the IDLE state 602.

After receiving acknowledgement of the header's transmission to the node 104 in the ACK-AH state 606, the node 102 enters a data sending state S-DATA 610 and continues transmitting the remainder of the data packet. After finishing its transmission, the node 102 starts a timer of duration Δ₂>2Γ and enters the W-ACK-DATA state 616.

While in the R-DATA state 612, the node 104 continues to receive data until it has received the entire data packet from the node 102. After receiving the entire data packet, the node 104 enters the S-ACK-DATA state 614.

In the S-ACK-DATA state 614, the node 104 verifies the data packet. If there is an error, the node 104 powers off the busy tone and returns to the IDLE state 602. If the packet was received correctly, the node 104 continues sending the busy tone for Δ₂ seconds to acknowledge receiving the data. It then powers off the busy tone and returns to the IDLE state 602.

The node 102 enters the waiting-for-acknowledgement-of-data state (W-ACK-DATA) 616 from the S-DATA state 610 after setting the timer having a duration of Δ₂. The node 102 may continue sending data (e.g., dummy data) in order to prevent other nodes in its coverage area 112 from turning on a busy tone and destroying the acknowledgement process. The node 104 ignores the dummy data. While in the W-ACK-DATA state 616, the node 102 continues its detection of the busy tone. If there is no busy tone or the busy tone ends before the timer expires, the node 102 determines that the data packet did not reach the node 104 correctly (e.g., an error occurred). Accordingly, the node 102 buffers the data packet for retransmission in the future and returns to the IDLE state 602. If the node 102 continues to detect the busy tone until the timer expires, it determines that the data packet was received by the node 104 correctly and returns to the IDLE state 602.

It is understood that modifications may be made to the state machine 600 of FIG. 6. For example, with respect to FIG. 4, which does not include an acknowledgement of the data packet as described in FIG. 5, the S-ACK-DATA state 614 may not leave the busy tone on for Δ₂ seconds or may not be implemented at all (e.g., the node 104 may proceed from the R-DATA state 612 to the IDLE state 602 after successfully receiving the data). Similarly, from the sender's point of view, the W-ACK-DATA state 616 may not be implemented. Accordingly, various alterations may be made to the state machine 600 to enable it to perform in a desired manner.

The above embodiments illustrate that AWCD/ACK is designed to take into account various types of conflicts that may be present in ad hoc wireless networks. For example, the parameters of Δ₁, Δ₂, and δ_(AH) may be specified to resolve hidden/exposed-node problems and optimize spectrum efficiency.

The following paragraphs provide a series of proofs to detail a mathematical foundation for the various embodiments described above. It is understood that the following proofs are for purposes of example only, and are not intended to be limiting. For purposes of convenience, the following paragraphs use the terms “sender” and “S_(x)” for a sending node, and “receiver” and “R_(x)” for a receiving node. The following three equations illustrate a relationship between various parameters used above. δ_(AH)>2Γ  (Eq. 1) Δ₁>δ_(AH)+2Γ  (Eq. 2) Δ₂>2Γ  (Eq. 3)

Theorem 1: In AWCD/ACK, the sender who has sensed a busy tone at the end of the ACK-AH state (i.e., Δ₁ seconds beginning from data transmit) is acknowledged of its transmission attempt uniquely by the targeted receiver.

Proof of Theorem 1: Suppose that node S₁ starts sending data to node R₁ at t₀. To be able to initiate data transmission, S₁ should not hear a busy tone at t₀. Assume there are competing receivers (e.g., R₂) in S₁'s coverage area trying to respond to a data transmission attempt by other senders.

R₂ cannot switch on a busy tone after the arrival of S₁'s data. The earliest time that R₂ can turn on the busy tone is t₁=t₀−τ, where τ is the propagation delay between R₂ and S₁. R₂ cannot finish receiving the competing address header (AH) until t₂=t₁+δ_(AH)=t₀−τ+δ_(AH). On the other hand, the data from S₁ will reach R₂ no later than t₃=t₀+τ. Given δ_(AH)>2Γ (Eq. 1), then t₃<t₂, which means R₂ cannot succeed in receiving the competing address header given the timely interference from S₁.

This illustrates that all other competing receivers have to give up their receiving attempts (i.e., they must turn off their busy tone at the end of receiving the competing AH). The latest time R₂ can detect a new incoming data transmission and initiate a competing busy tone is at t₃. Hence, the latest time R₂ must turn off its busy tone is t₄=t₃+δ_(AH)=t₀+τ+δ_(AH). All the competing busy tone signals except the one from R₁ will disappear at S₁ at t₅=t₄+τ=t₀+2τ+δ_(AH).

S₁ views the busy tone at t₆=t₀+Δ₁ as the acknowledgement of its address header transmission. As long as Δ₁ is larger than 2Γ+δ_(AH) (Eq. 2), the following inequality exists: t ₅ <t ₆  (Eq. 4)

This illustrates that all other competing busy tone signals disappear at S₁ before the end of the ACK-AH state. Only the target receiver R₁ is acknowledging the data transmit.

Note that Theorem 1 illustrates that there is no ambiguity with respect to who should send data at the end of the ACK-AH state if there are competing data transmissions. In other words, neither RTS nor CTS are needed for the AWCD/ACK protocol. Theorem 1 also clarifies the requirements of Eqs. 1 and 2.

Theorem 1 validates the AWCD/ACK design from a sender's viewpoint. The following describes the AWCD/ACK design from a receiver's viewpoint.

Lemma 1: Assuming that packet collision is the only reason for a packet receiving error, a sender at the end of the S-DATA state who hears a busy tone has transmitted the data packet without collision in AWCD/ACK.

Proof of Lemma 1: Suppose that R₁ is receiving a data packet from S₁, while another node H who is τ seconds away from R₁ is trying to send a competing data packet (FIG. 7 b). At time t₁, R₁ detects an incoming data transmission from S₁, and turns on a busy tone. R₁ must successfully receive the address header of S₁'s data in order for S₁ to enter and finish the S-DATA state. In other words, H should not be sending any competing data in the interval [t₁−τ, t₂], where t₂=t₁+δ_(AH)−τ. Otherwise, the competing data would reach R₁ at the interval [t₁, t₁+δ_(AH)], and destroy the reception activity at R₁, who would have turned off the busy tone at t₁+δ_(AH).

Define t ₃=max{t ₂ }=t ₁+δ_(AH)  (Eq. 5)

The above description illustrates that H cannot send data before t₃, and the following illustrates that H cannot send data after t₃. At time t₄=t₁+τ, the busy tone reaches H, who will not be able to initiate a data transmission after t₄ until the busy tone disappears. Considering all the cases for node H, no node can initiate a competing data transmission after t₅=max{t₄}=t₁+Γ until the busy tone disappears.

Given the condition in Eq. 1, the following inequality exists: t ₅ <t ₃  (Eq. 6)

In conclusion, the success of R₁'s receipt of S₁'s address header implies that no competing data reaches R₁ while R₁ is receiving the address header and the data. This illustrates that a sender that has left the S-DATA state has sent its data without any collisions if a packet collision is the only reason for a receiving error.

Theorem 2: A sender that detects a busy tone at the end of the W-ACK-DATA state has transmitted the data packet without error in AWCD/ACK.

Proof of Theorem 2: Lemma 1 illustrates that there is no error in receiving due to data packet collisions as long as the receiver R₁ successfully receives the address header and keeps the busy tone on to sustain S₁'s data transmission. Theorem 2 illustrates that there is no receiving error due to other interferences if S₁ still senses the busy tone at the end of the W-ACK-DATA state.

If an error occurs during the receiving process, R₁ turns off the busy tone at t₁=t₀+δ+τ, where it is assumed that S₁ starts its data transmission at t₀ and the one-way propagation delay between S₁ and R₁ is τ seconds. The busy tone signal from R₁ will disappear at t₂=t₀+δ+2τ, no more than t₃=max{t₂}=t₀+δ+2Γ. The W-ACK-DATA state ends at t₄=t₀+δ+Δ₂.

Given Δ₂>2Γ (Eq. 3), the following inequality exists: t ₃ <t ₄  (Eq. 7) Namely, R₁'s busy tone disappears at S₁ before the end of the W-ACK-DATA state if an error occurs during R₁'s receiving process.

It has already been illustrated by Theorem 1 that all competing busy tone signals at the ACK-AH state disappear after t₀+δ_(AH)+2Γ. During the W-ACK-DATA state, S₁ continues to send data (e.g., dummy data) that prevents other nodes in S₁'s coverage area from switching on a busy tone.

Accordingly, there is no busy tone in S₁'s coverage area at the end of the W-ACK-DATA state. This is contradictory to the proposition that S₁ does sense a busy tone at t₄. Therefore, a sender at the end of W-ACK-DATA state that detects a busy tone has transmitted the data packet without error in AWCD/ACK.

Corollary 1: During a successful data transmission period, exposed nodes cannot be trapped in a receiving situation by mistake and hidden nodes cannot transmit competing data packets.

Proof of Corollary 1: A successful data transmission period between a sender S₁ and a receiver R₁ includes states ACK-AH, S-DATA, W-ACK-DATA, and S-ACK (FIG. 6). FIG. 7 a shows an undesired situation where the exposed node E is trapped in a receiving situation while S₁ is sending data to R₁. In this case, S₁ would have sensed the busy tone from more than one receiver after the ACK-AH state, which is contradictory to Theorem 1.

FIG. 7 b shows another undesired situation where the hidden node H is trapped in a transmitting situation during the entire transmission period between S₁ and R₁. This is contradictory to Lemma 1 and Theorem 2. Accordingly, AWCD/ACK prevents hidden-node transmitting, and exposed-node receiving.

Corollary 2: Exposed nodes are allowed to transmit. Hidden nodes are allowed to receive.

Proof of Corollary 2: The two situations of Corollary 2 are illustrated in FIGS. 7 c and 7 d. As shown in FIG. 7 c, exposed node E does not detect the busy tone from R₁ and is free to transmit data to a receiver that is out of S₁'s coverage area. As shown in FIG. 7 d, hidden node H is not affected by S₁'s transmission and is free to receive data from a sender that is out of R₁'s coverage area. Accordingly, AWCD/ACK allows concurrent transmissions in ad hoc networks.

Although only a few exemplary embodiments of this disclosure have been described in details above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages of this disclosure. For example, while the term “packet” is used for purposes of example, it is understood that the present disclosure applies to any type of transmission using a defined transmission unit, including packets, datagrams, and frames, and that the term “packet” represents any such unit. Also, features illustrated and discussed above with respect to some embodiments can be combined with features illustrated and discussed above with respect to other embodiments. Accordingly, all such modifications are intended to be included within the scope of this disclosure. 

1. A method for use by a sending node in an ad hoc network, the method comprising: attempting to detect a tone emitted by one of a plurality of receiving nodes; in response to not detecting the tone, setting a timer of a first time period and sending an initial portion of a packet to a receiving node, wherein the initial portion contains a destination address of the receiving node; determining whether the tone is detected during the first time period; and sending a remaining portion of the packet to the receiving node if the tone is detected before the first period expires.
 2. The method of claim 1 further comprising not sending the remaining portion if the tone ends prior to the expiration of the first time period.
 3. The method of claim 2 further comprising returning to an idle state if the tone ends prior to the expiration of the first time period.
 4. The method of claim 1 further comprising: setting a timer of a second time period after sending the remaining portion; and determining whether the tone remains on during the second time period.
 5. The method of claim 4 further comprising sending data to the receiving node during the second time period.
 6. The method of claim 5 wherein the data is dummy data.
 7. The method of claim 4 further comprising: buffering the packet if the tone ends prior to the expiration of the second time period; and attempting to resend the packet at a later time.
 8. The method of claim 7 further comprising entering an idle state after buffering the packet.
 9. The method of claim 1 wherein the first time period is defined as having a duration at least equal to a maximum two-way propagation delay of a coverage area of the sending node.
 10. The method of claim 1 wherein the tone is a busy tone.
 11. A sending node system, comprising: a processor configured to prepare an initial portion of a packet for transmission in the absence of a tone, wherein the initial portion of the packet comprises a destination address; a timer coupled to the processor that defines a first time period; a transmitter that, in the absence of the tone, sets the timer to the first time period and sends the initial portion of the packet; a receiver that listens for the presence of the tone prior to sending the initial portion of the packet and during the first time period, wherein the transmitter transmits a remaining portion of the packet upon the detection of the tone by the receiver during the first time period.
 12. The system of claim 11 wherein said transmitter does not send the remaining portion if the tone ends prior to the expiration of the first time period.
 13. The system of claim 11, wherein the timer further sets a second time period after sending the remaining portion, and wherein the receiver determines if the tone remains on during the second time period.
 14. The system of claim 13, wherein the transmitter sends data to the receiving node during the second time period.
 15. The system of claim 14, wherein the data is dummy data.
 16. The system of claim 13, wherein the processor buffers the packet if the tone ends prior to the expiration of the second time period and instructs the transmitter to resend the packet at a later time.
 17. The system of claim 16 further comprising entering an idle state after buffering the packet.
 18. The system of claim 11, wherein the first time period is defined as having a duration at least equal to a maximum two-way propagation delay of a coverage area of the sending node.
 19. The system of claim 11, wherein the tone is a busy tone.
 20. A method, comprising: attempting to detect a busy tone emitted by one of a plurality of receiving nodes by a sending node; when the busy tone is not detected, setting a timer of a first time period and sending an initial portion of a packet to a receiving node, wherein the initial portion comprises a destination address of the receiving node, and the first time period is defined as having a duration at least equal to a maximum two-way propagation delay of a coverage area of the sending node; determining whether the busy tone is detected during the first time period; and sending a remaining portion of the packet to the receiving node if the busy tone is detected before the first period expires. 